﻿using Huirui.Cavan.Domain.MainBoundedContext.SearchModule;
using Huirui.Cavan.Application.Seedwork;
using Huirui.Cavan.Domain.MainBoundedContext.StockModule;
using Huirui.Cavan.Domain.Seedwork;
using System.Collections.Generic;
using Huirui.Cavan.Domain.MainBoundedContext.ReportModule;
using System;

namespace Huirui.Cavan.Application.MainBoundedContext.StockModule
{
    public interface IStockAppService : IBaseAppService<Stock, string, StockSearch>
    {
        IList<StockByPurchaseOrderReport> GetStocksByPurchaseOrderReport(DateTime? startDate, DateTime? endDate, string purchaseOrderCode, string supplierCode, string stockInStatues);

        IList<StockByPurchaseReport> GetStocskByStockInReport(DateTime? startDate, DateTime? endDate, string stockInCode, string stockCode);

        IList<StockBySalesOrderReport> GetStocksBySalesOrderReport(DateTime? startDate, DateTime? endDate, string salesOrderCode, string customerCode, string stockOutStatues);

        IList<StockBySalesReport> GetStocksBySalesReport(DateTime? startDate, DateTime? endDate, string salesCode, string stockCode);

        IList<StockByWareHouseReport> GetStocksByWareHouseReport(string wareHouseCode, string stockCode);
    }
}
